package com.qujia.station.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qujia.common.annotation.Excel;
import com.qujia.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 优惠劵对象 coupon_info
 *
 * @author qujia
 * @date 2021-08-09
 */
public class CouponInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Integer id;


    /** 优惠劵名称 */
    @Excel(name = "优惠劵名称")
    private String couponName;

    /** 优惠劵类型 1现金劵，2折扣券，3兑换券 */
    @Excel(name = "优惠劵类型 1现金劵，2折扣券，3兑换券")
    private String couponType;

    /** 优惠劵面值，金额，折扣比例 */
    @Excel(name = "优惠劵面值，金额，折扣比例")
    private BigDecimal couponAmt;

    /** 优惠劵数量 */
    @Excel(name = "优惠劵数量")
    private Integer couponNum;


    /** 有效时间类型： 1，固定时间；2，领取后x天内有效 */
    @Excel(name = "有效时间类型： 1，固定时间；2，领取后x天内有效")
    private String effectiveTimeType;

    /** 固定时间-有效开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "固定时间-有效开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveTimeStart;

    /** 固定时间-有效结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "固定时间-有效结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveTimeEnd;

    /** 有效天数 */
    @Excel(name = "有效天数")
    private Integer effectiveDayNum;


    /** 优惠劵数量 */
    @Excel(name = "优惠劵领取数量")
    private Integer getCouponNum;

    /** 优惠劵数量 */
    @Excel(name = "优惠卷使用数量")
    private Integer useCouponNum;


    /** 优惠内容*/
    private String couponDetails;



    /** 有效状态：0，未生效； 1，生效；2，失效； */
    @Excel(name = "有效状态：0，未生效； 1，生效；2，失效；")
    private String status;





    //优惠卷标识
    private String couponRemark;
    /** 是否删除优惠劵 1是 0 否 */
    private String delFlag;

    @ApiModelProperty("使用说明")
    private String usageDescription;

    public String getMoonCount() {
        return moonCount;
    }

    public void setMoonCount(String moonCount) {
        this.moonCount = moonCount;
    }

    public String getDayCount() {
        return dayCount;
    }

    public void setDayCount(String dayCount) {
        this.dayCount = dayCount;
    }

    @ApiModelProperty("月几张")
    private String moonCount;

    @ApiModelProperty("日几张")
    private String dayCount;

    public String getCouponActivityId() {
        return couponActivityId;
    }

    public void setCouponActivityId(String couponActivityId) {
        this.couponActivityId = couponActivityId;
    }

    @ApiModelProperty("活动id")
    private String couponActivityId;


    private Long enterpriseId;


    /** 优惠劵 站点id **/
    private String verification;
    /**优惠卷站点id*/
    private List<Integer> verificationList;
    private List<String> verificationNameList;

    /**最低可使用优惠券的金额**/
    private BigDecimal minUseCouponAmt;

    public BigDecimal getMinUseCouponAmt() {
        return minUseCouponAmt;
    }

    public void setMinUseCouponAmt(BigDecimal minUseCouponAmt) {
        this.minUseCouponAmt = minUseCouponAmt;
    }

    public String getVerification() {
        return verification;
    }

    public void setVerification(String verification) {
        this.verification = verification;
    }

    public List<Integer> getVerificationList() {
        return verificationList;
    }

    public void setVerificationList(List<Integer> verificationList) {
        this.verificationList = verificationList;
    }

    public List<String> getVerificationNameList() {
        return verificationNameList;
    }

    public void setVerificationNameList(List<String> verificationNameList) {
        this.verificationNameList = verificationNameList;
    }

    public Long getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(Long enterpriseId) {
        this.enterpriseId = enterpriseId;
    }





    public String getCouponRemark() {
        return couponRemark;
    }

    public void setCouponRemark(String couponRemark) {
        this.couponRemark = couponRemark;
    }


    private String editFlag;
    private String appointedDays;
    private String cycleDays;
    private String availableControl;

    private List<String> appointedDaysList;
    private List<String> cycleDaysList;


    public Integer getGetCouponNum() {
        return getCouponNum;
    }

    public void setGetCouponNum(Integer getCouponNum) {
        this.getCouponNum = getCouponNum;
    }

    public Integer getUseCouponNum() {
        return useCouponNum;
    }

    public void setUseCouponNum(Integer useCouponNum) {
        this.useCouponNum = useCouponNum;
    }

    public List<String> getAppointedDaysList() {
        return appointedDaysList;
    }

    public void setAppointedDaysList(List<String> appointedDaysList) {
        this.appointedDaysList = appointedDaysList;
    }

    public List<String> getCycleDaysList() {
        return cycleDaysList;
    }

    public void setCycleDaysList(List<String> cycleDaysList) {
        this.cycleDaysList = cycleDaysList;
    }

    public String getAppointedDays() {
        return appointedDays;
    }

    public void setAppointedDays(String appointedDays) {
        this.appointedDays = appointedDays;
    }

    public String getCycleDays() {
        return cycleDays;
    }

    public void setCycleDays(String cycleDays) {
        this.cycleDays = cycleDays;
    }

    public String getAvailableControl() {
        return availableControl;
    }

    public void setAvailableControl(String availableControl) {
        this.availableControl = availableControl;
    }

    public String getEditFlag() {
        return editFlag;
    }

    public void setEditFlag(String editFlag) {
        this.editFlag = editFlag;
    }

    /**
     * 时间数组
     */
    private List<String> effectiveTime;



    public List<String> getEffectiveTime() {
        return effectiveTime;
    }

    public void setEffectiveTime(List<String> effectiveTime) {
        this.effectiveTime = effectiveTime;
    }



    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId()
    {
        return id;
    }

    public Integer getCouponNum() {
        return couponNum;
    }

    public void setCouponNum(Integer couponNum) {
        this.couponNum = couponNum;
    }


    public String getCouponDetails() {
        return couponDetails;
    }

    public void setCouponDetails(String couponDetails) {
        this.couponDetails = couponDetails;
    }


    public void setCouponName(String couponName)
    {
        this.couponName = couponName;
    }

    public String getCouponName()
    {
        return couponName;
    }
    public void setCouponType(String couponType)
    {
        this.couponType = couponType;
    }

    public String getCouponType()
    {
        return couponType;
    }

    public void setCouponAmt(BigDecimal couponAmt)
    {
        this.couponAmt = couponAmt;
    }

    public BigDecimal getCouponAmt()
    {
        return couponAmt;
    }

    public void setEffectiveTimeType(String effectiveTimeType)
    {
        this.effectiveTimeType = effectiveTimeType;
    }

    public String getEffectiveTimeType()
    {
        return effectiveTimeType;
    }
    public void setEffectiveTimeStart(Date effectiveTimeStart)
    {
        this.effectiveTimeStart = effectiveTimeStart;
    }

    public Date getEffectiveTimeStart()
    {
        return effectiveTimeStart;
    }
    public void setEffectiveTimeEnd(Date effectiveTimeEnd)
    {
        this.effectiveTimeEnd = effectiveTimeEnd;
    }

    public Date getEffectiveTimeEnd()
    {
        return effectiveTimeEnd;
    }
    public void setEffectiveDayNum(Integer effectiveDayNum)
    {
        this.effectiveDayNum = effectiveDayNum;
    }

    public Integer getEffectiveDayNum()
    {
        return effectiveDayNum;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("couponName", getCouponName())
                .append("couponType", getCouponType())
                .append("couponAmt",getCouponAmt())
                .append("couponNum",getCouponNum())
                .append("effectiveTimeType", getEffectiveTimeType())
                .append("effectiveTimeStart", getEffectiveTimeStart())
                .append("effectiveTimeEnd", getEffectiveTimeEnd())
                .append("effectiveDayNum", getEffectiveDayNum())
                .append("status", getStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("delFlag", getDelFlag())
                .toString();
    }

    public String getUsageDescription() {
        return usageDescription;
    }

    public void setUsageDescription(String usageDescription) {
        this.usageDescription = usageDescription;
    }
}
